package com.outdoor.server.service;

import com.outdoor.pojo.dto.NodeCreateDTO;
import com.outdoor.pojo.entity.Track;
import com.outdoor.pojo.vo.TrackVO;

import java.util.List;

public interface TrackService {
    /**
     * 开始记录轨迹
     * @param uid 用戶ID
     * @return 轨迹ID
     */
    Long startTrack(Long uid);

    /**
     * 添加轨迹节点
     * @param nodeCreateDTO 节点信息
     */
    void addNode(NodeCreateDTO nodeCreateDTO);

    /**
     * 结束记录轨迹
     * @param trackId 轨迹ID
     * @return 完整的轨迹信息
     */
    void endTrack(Long trackId);

    /**
     * 获取轨迹详情
     * @param trackId 轨迹ID
     * @return 轨迹详情
     */
    TrackVO getTrackDetail(Long trackId);

    /**
     * 获取用户所有轨迹
     * @param uid 用户ID
     * @return 用户所有轨迹
     */
    List<Track> getAllTrack(Long uid);
}